package com.pureut.storage.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pureut.storage.domain.MiscellaneousReceipt;
import com.pureut.storage.dto.*;
import com.pureut.storage.vo.MiscellaneousReceiptVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/***
 * 其他入库mapper
 * Author:C
 * Date:2022/12/28 15:46
 * @DESC
 */
@Mapper
public interface MiscellaneousReceiptMapper extends BaseMapper<MiscellaneousReceipt> {

    /**
     * 其他入库列表
     */
    Page<MiscellaneousReceiptDto> getMiscellaneousList(@Param("miscellaneousReceiptVo") MiscellaneousReceiptVo miscellaneousReceiptVo,@Param("page") Page<MiscellaneousReceiptDto> page);

    /**
     * 根据id获取其他入库详情
     */
    MiscellaneousReceiptDto getMiscellaneousById(long id);

    /**
     * 其他入库列表(手持pda)
     */
    Page<AndroidPdaDto> getMiscellaneousAndroidList(@Param("deptId") Long deptId,@Param("page") Page<AndroidPdaDto> page);

    /**
     * 手持pda 拣货撤销列表
     */
    Page<AndroidPdaDto> getMiscellaneousAndroidpickCancellationList(@Param("deptId") Long deptId,@Param("page") Page<AndroidPdaDto> page);

    /**
     * 根据id获取其他入库详情(手持pda)
     */
    AndroidPdaViewDto getMiscellaneousByIdAndroid(long id);

    /**
     * 其他入库pda 交接列表
     */
    Page<AndroidHandoverPdaDto> getAndroidHandoverList(@Param("deptId") Long deptId,@Param("page") Page<AndroidPdaDto> page);

    /**
     * 其他入库手持pda 交接详情
     */
    AndroidHandoverPdaDto getAndroidHandoverView(long id);

    /**
     * 根据多个id获取数据
     */
    List<MiscellaneousPurchaseReceiptExportDto> getDataByIdStr(@Param("idList") List<String> idList);

    /**
     * 其他入库列表(导出查询)
     */
    List<MiscellaneousPurchaseReceiptExportDto> getMiscellaneousListOut(MiscellaneousReceiptVo miscellaneousReceiptVo);

    /**
     * 领料出库Pda列表
     * @param deptId
     * @param build
     * @return
     */
    Page<AndroidPdaDto> getStockList(@Param("deptId") Long deptId,@Param("page") Page<Object> page);

    /**
     * 领料出库Pda详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getStockByIdAndroid(long id);

    /**
     * 委外发货Pda列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidPdaDto> getOutsource(@Param("deptId") Long deptId,@Param("page") Page<Object> page);

    /**
     * 委外发货Pda列表详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getOutsourceByIdAndroid(long id);

    /**
     * 销售发货Pda列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidPdaDto> getSale(@Param("deptId") Long deptId,@Param("page") Page<Object> page);

    /**
     * 销售发货Pda详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getSaleByIdAndroid(long id);

    /**
     * 返工出库Pda列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidPdaDto> getComplete(@Param("deptId") Long deptId,@Param("page") Page<Object> page);

    /**
     * 返工出库Pda详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getCompleteByIdAndroid(long id);

    /**
     * 采购退货Pda列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidPdaDto> getPurchase(@Param("deptId") Long deptId,@Param("page") Page<Object> page);

    /**
     * 采购退货Pda详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getPurchaseByIdAndroid(long id);

    /**
     * 委外退货Pda列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidPdaDto> getReturn(@Param("deptId") Long deptId,@Param("page") Page<Object> page);

    /**
     * 委外退货Pda详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getReturnByIdAndroid(long id);

    /**
     * 其他出库Pda列表
     * @param deptId
     * @param page
     * @return
     */
    Page<AndroidPdaDto> getRest(@Param("deptId") Long deptId,@Param("page") Page<AndroidPdaDto> page);

    /**
     * 其他出库Pda详情
     * @param id
     * @return
     */
    AndroidPdaViewDto getRestByIdAndroid(long id);
}
